return g_hash_table_lookup (self->priv->id_to_app, id);
}
-/**
- * shell_app_system_lookup_app_for_path:
- * @system: a #ShellAppSystem
- * @desktop_path: (type utf8): UTF-8 encoded absolute file name
- *
- * Find or create a #ShellApp corresponding to a given absolute file
- * name which must be in the standard paths (XDG_DATA_DIRS). For
- * files outside the datadirs, this function returns %NULL.
- *
- * Return value: (transfer none): The #ShellApp for id, or %NULL if none
- */
-ShellApp *
-shell_app_system_lookup_app_for_path (ShellAppSystem *system,
- const char *desktop_path)
-{
- const char *basename;
- const char *app_path;
- ShellApp *app;
-
- basename = g_strrstr (desktop_path, "/");
- if (basename)
- basename += 1;
- else
- basename = desktop_path;
-
- app = shell_app_system_lookup_app (system, basename);
- if (!app)
- return NULL;
-
- app_path = g_desktop_app_info_get_filename (shell_app_get_app_info (app));
- if (strcmp (desktop_path, app_path) != 0)
- return NULL;
-
- return app;
-}
-
/**
* shell_app_system_lookup_heuristic_basename:
* @system: a #ShellAppSystem
ShellApp *shell_app_system_lookup_app (ShellAppSystem *system,
const char *id);
-ShellApp *shell_app_system_lookup_app_for_path (ShellAppSystem *system,
- const char *desktop_path);
ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
const char *id);
shell_startup_sequence_get_app (ShellStartupSequence *sequence)
{
const char *appid;
+ char *basename;
ShellAppSystem *appsys;
ShellApp *app;
if (!appid)
return NULL;
+ basename = g_path_get_basename (appid);
appsys = shell_app_system_get_default ();
- app = shell_app_system_lookup_app_for_path (appsys, appid);
+ app = shell_app_system_lookup_app (appsys, basename);
+ g_free (basename);
return app;
}